package com.sinoglobal.ningxia.thread;

import android.os.AsyncTask;

import com.sinoglobal.ningxia.R;
import com.sinoglobal.ningxia.frame.ITask;
	/**
	 * 
	 * @author ty
	 * @createdate 2012-6-6 下午1:37:40
	 * @Description: 异步任务封装
	 * @param <Params>
	 *            启动任务执行的参数
	 * @param <Progress>
	 *            后台任务执行的百分比。
	 * @param <Result>
	 *            后台执行任务最终返回的结果
	 */
	public abstract class ItktAsyncTask<Params, Progress, Result> extends
			AsyncTask<Params, Progress, Result> implements
			ITask<Params, Progress, Result> {

		private boolean isNetWork = true;
		private String message = null;
		private boolean isLoadingPrompt = true; // isLoadingPrompt
												// 是否使用运营推荐消息,默认为true

		public ItktAsyncTask() {
		}

		/**
		 * @param isNetWork
		 *            是否需要进行网络判断， true,需要网络，false不需要网络，默认为true
		 */
		public ItktAsyncTask(boolean isNetWork) {
			this.isNetWork = isNetWork;
		}

		/**
		 * @param message
		 *            提示信息
		 * @param isLoadingPrompt
		 *            是否使用运营推荐消息
		 */
		public ItktAsyncTask(String message, boolean isLoadingPrompt) {
			this.message = message;
			this.isLoadingPrompt = isLoadingPrompt;
		}

		@Override
		protected void onPreExecute() {
			
			super.onPreExecute();
		}

		@Override
		protected Result doInBackground(Params... params) {
			try {
				return before(params);
			} catch (Exception e) {
				e.printStackTrace();
				
				cancel(false);
			}
			return null;
		}

		@Override
		protected void onPostExecute(Result result) {
			super.onPostExecute(result);
		
			after(result);
		}

		@Override
		protected void onCancelled() {
			super.onCancelled();
		}
	}

